/**
 * GisController - part of PerlaGis Architecture
 *
 * Copyright (C) 2010 Ricardo Gonzalez (gomnaz@gmail.com)
 * This program is free software: you can redistribute it and/or modify it under the
 * terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later version.
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 * Public License for more details.
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see http://www.gnu.org/licenses/
 */
package org.gis.controllers;

import org.perla.services.Attitude;
import org.perla.services.Bibi;
import org.perla.services.NoSuchSensorException_Exception;
import org.perla.services.Temperature;
import org.perla.services.WrongSensorTypeException_Exception;

/**
 * Classe statica che gestisce la comunicazione con il PerlaController
 * tramite i servizi disponibili.
 * E' possibile richiede al PerlaController gli ultimi valori per un dato sensore.
 *
 * @author Ricardo Gonzalez
 * @author Eva Gjeci
 */
public class Perla {

    /**
     * Chiede al PerlaController l'ultimo valore per un sensore Attitude.
     *
     * @param idGis la chiave del sensore nel Gis
     * @return l'ultimo valore del sensore
     * @throws WrongSensorTypeException_Exception se il sensore non è di tipo Attitude
     * @throws NoSuchSensorException_Exception se la chiave non è in relazione a a nessun sensore Perla
     */
    public static Attitude getLastAttitudeValue(java.lang.String idGis) throws WrongSensorTypeException_Exception, NoSuchSensorException_Exception {
        org.perla.services.OperativeService service = new org.perla.services.OperativeService();
        org.perla.services.Operative port = service.getOperativePort();
        return port.getLastAttitudeValue(idGis);
    }

    /**
     * Chiede al PerlaController l'ultimo valore per un sensore Bibi.
     *
     * @param idGis la chiave del sensore nel Gis
     * @return l'ultimo valore del sensore
     * @throws WrongSensorTypeException_Exception se il sensore non è di tipo Attitude
     * @throws NoSuchSensorException_Exception se la chiave non è in relazione a a nessun sensore Perla
     */
    public static Bibi getLastBibiValue(java.lang.String idGis) throws NoSuchSensorException_Exception, WrongSensorTypeException_Exception {
        org.perla.services.OperativeService service = new org.perla.services.OperativeService();
        org.perla.services.Operative port = service.getOperativePort();
        return port.getLastBibiValue(idGis);
    }

    /**
     * Chiede al PerlaController l'ultimo valore per un sensore Temperature.
     *
     * @param idGis la chiave del sensore nel Gis
     * @return l'ultimo valore del sensore
     * @throws WrongSensorTypeException_Exception se il sensore non è di tipo Attitude
     * @throws NoSuchSensorException_Exception se la chiave non è in relazione a a nessun sensore Perla
     */
    public static Temperature getLastTemperatureValue(java.lang.String idGis) throws WrongSensorTypeException_Exception, NoSuchSensorException_Exception {
        org.perla.services.OperativeService service = new org.perla.services.OperativeService();
        org.perla.services.Operative port = service.getOperativePort();
        return port.getLastTemperatureValue(idGis);
    }
}
